using System;
using System.Collections.Generic;

namespace Process.Domain.DTO.InputDTO
{

    //public class WorkflowSortInput
    //{
    //    public required string Id { get; set; }
    //    public string? operationid { get; set; }
    //    public required string Name { get; set; }
    //    public string Description { get; set; }
    //    public required List<WorkflowNode> Nodes { get; set; }
    //    public required List<WorkflowConnection> Connections { get; set; }
    //}
    //public class WorkflowNode
    //{
    //    public required string id { get; set; }
    //    public string? processId { get; set; }
    //    public required string Type { get; set; }
    //    public required string Name { get; set; }
    //    public required WorkflowPosition Position { get; set; }
    //    public string? department { get; set; }
    //    public string? departmentName { get; set; }
    //    public string? approver { get; set; }
    //    public string? approverName { get; set; }
    //}

    //public class WorkflowPosition
    //{
    //    public float X { get; set; }
    //    public float Y { get; set; }
    //}

    //public class WorkflowConnection
    //{
    //    public required string Id { get; set; }
    //    public required string source { get; set; }
    //    public required string target { get; set; }
    //    public required string Type { get; set; }
    //}
    public class WorkflowSortInput
    {
        public required string Id { get; set; }
        public long? operationid { get; set; }
        public required string name { get; set; }
        public string description { get; set; }
        public required WorkflowNode[] nodes { get; set; }
        public required WorkflowConnection[] connections { get; set; }
    }

    public class WorkflowNode
    {
        public required string id { get; set; }
        public string? processId { get; set; }
        public required string type { get; set; }
        public required string name { get; set; }
        public required WorkflowPosition position { get; set; }
        public string? department { get; set; }
        public string? departmentName { get; set; }
        public string? approver { get; set; }
        public string? approverName { get; set; }
    }

    public class WorkflowPosition
    {
        public float x { get; set; }
        public float y { get; set; }
    }

    public class WorkflowConnection
    {
        public required string id { get; set; }
        public required string source { get; set; }
        public required string target { get; set; }
        public required string type { get; set; }
    }
} 